﻿using System.Collections.Generic;

namespace eShop.Domain
{
    public interface IRepository
    {
        bool TryGet<TId, T>(TId key, out T entity);
        T Get<T, TId>(TId key);
        List<T> GetAll<T>();
        void Save<T>(T entity);
        void Delete<T>(T entity);

        //GetAll
        //GetByCriteria
        //GetCount

        //Load functions

        //BeginTransaction
        //Commit
        //Rollback
        //IsDirty
        //IsInTransaction
    }
}